草庐IT

python - 同步与异步

全部标签

javascript - 为什么 Javascript 中的递归异步函数会导致堆栈溢出?

考虑这个片段:functionf(){returnnewPromise((resolve,reject)=>{f().then(()=>{resolve();});});}f();也可以这样写:asyncfunctionf(){returnawaitf();}f();如果您运行给定的两个代码中的任何一个,您将遇到此错误:(node:23197)UnhandledPromiseRejectionWarning:RangeError:Maximumcallstacksizeexceeded我的问题是为什么?在回答我的问题之前,请考虑我的论点:我了解递归的概念以及如果没有停止条件它如何导致堆

javascript - 如何让 jQuery 将自定义参数传递给异步 AJAX 回调函数?

我的页面处理许多“商店”对象,每个对象都有一个名为“数据”的字段。但是,此数据是通过可能并行进行的AJAX请求获取的。functionStore(id){this.id=id;this.queryparam='blah';this.items=null;}Store.prototype.fetch=function(){$.get("/get_items",{q:this.quaryparam},function(data,status){//howtostorethereceiveddatainthisparticularstoreobject?Being//acallbackfun

javascript - 是否可以中止同步 XmlHttpRequest?

我编写了一个JavaScript函数,它使用XmlHttpRequest异步调用Web服务。我被要求让这个函数在页面呈现之前完成它的工作。我想我可以使AJAX请求同步,但我不希望这使页面挂起太久-如果未收到响应,我想在1秒后中止请求。是否可以中止同步XmlHttpRequest? 最佳答案 你不能:http://www.hunlock.com/blogs/Snippets:_Synchronous_AJAX说:“同步AJAX(真正的SJAX——同步Javascript和XML)是模态的,这意味着javascript将停止处理您的程序

javascript - jquery - 在异步数据获取后更新 jquery.sparkline

背景我正在使用jquery.sparkline生产PieCharts.饼图的数据包含在一个数组中。当页面首次加载时,调用网络服务(使用.ajax)来获取数据,那里指定的回调获取接收到的数据并更新与饼图关联的数组。当屏幕上的下拉菜单更改值时,将调用相同的更新过程。情况如果我将.ajax调用设置为asynch=false,一切正常。如果我将.ajax调用设置为asynch=true,则饼图中显示的结果总是“落后一次刷新”。我的意思是,最初没有饼图,然后当下拉菜单发生变化时,饼图呈现为最初应该呈现的样子。代码$.ajax({type:"GET",contentType:"applicatio

javascript - 使用 JavaScript Web Workers 的并行编程/同步

是否有任何同步原语,如障碍、信号量、锁、监视器,...JavaScript/WebWorkers或者是否有一些可用的库使我能够使用这些东西(我正在考虑Java中的java.util.concurrent之类的东西)?Worker是否具有将它们与线程区分开来的晦涩属性(例如,它们可以与主线程共享内存)?是否有某种限制可以产生多少worker(例如,出于安全原因或其他原因......)?我需要特别注意什么吗? 最佳答案 网络worker没有共享内存的概念;复制线程之间传递的所有消息。话虽如此,您没有屏障、信号量、锁和监视器,因为您在网络

javascript - Python URL 解码?

在javascript中,我执行以下操作:encodeURIComponent(comments)在Python中,我执行以下操作:urllib2.unquote(comments)出于某种原因,当我执行以下操作时:encodedURIComponents('ø')我得到%C3%B8,但是当我解码时urllib2.unquote('%C3%B8')我得到的是ø而不是ø,这是原始字符。什么给了?我使用的平台在客户端使用jQuery,在服务器端使用Python/Django。 最佳答案 简单地尝试解码它:urllib2.unquote

javascript - 异步循环中的 Node.js Api 调用

我在进行多次api调用并在正确位置获取返回结果时遇到困难。这就是我想要实现的目标:两个循环,嵌套。外部循环遍历一个复杂的json对象,并将一些对象的值放在数组调用框中。内部循环调用api并将返回的结果放在名为bag的数组中。所以我有装满数据的盒子和袋子。当循环和api调用都结束时,我想访问box和bag中的数据并对其进行处理。我只是不确定在同一执行点访问两个数组的最佳方法。这是我目前所拥有的,但当然bag和box是空的,因为它们在所有循环和api调用结束之前被调用。vardata={}//ajsonobjectwithdata;varbag=[];varbox=[];async.for

Javascript ES6 生成器异步

我需要异步运行生成器(我需要在控制台1、2、3、4、5中得到结果,因为现在我有4、1、2、3、5)有人可以帮助我吗?我需要运行任务并等待上一个任务完成后再运行下一个任务。我需要使用(如果可能:仅)生成器(或生成器+promise?)这是我的代码/*jshintesnext:true*/functionshow(msg){var_msg=msg;setTimeout(function(){console.log(_msg);},2000);}functionshow2(msg){console.log(msg);}varstack=[];//addsomefunctiontostacks

javascript - Selenium 和异步 JavaScript 调用

我对Selenium和JavaScript回调函数还很陌生,我有一个大问题我自己无法解决。我需要一个使用JavaScript的指定变量。如果我使用GoogleChrome打开页面并使用控制台输入我的JavaScript代码,我可以使用如下方式获取变量:1.varmyId;2.getSomeIdStuffInfo("somestuff",function(docId)(myId=docId));3.returnmyId;如果我一步一步地输入这一行,我很容易得到正确的值myId。但是,当然,如果我尽可能快地执行这三行代码,我会得到null作为返回值,因为当我返回myId时回调函数还没有完成

javascript - 用于异步事件的 jQuery

我有一个html按钮需要异步触发3个事件。如果我有这个:$('#id').click(function(e){func1();});$('#id').click(function(e){func2();});$('#id').click(function(e){func3();});我能得到并发吗?或者如果一个功能需要很长时间,下一个功能会被阻止吗?Javascript如何处理这种顺序调用?谢谢, 最佳答案 “一个功能需要很长时间,下一个功能会被阻止”-您与我们共享的代码将以这种方式运行。您需要显式实现异步事件,因为@Zakaria